#pragma once

#include <vector>
#include <stdexcept>
#include <glm/glm.hpp>


class Algoritmo1D {
public:
	virtual ~Algoritmo1D() { }

	// Carga los puntos de control usados
	virtual void init(std::vector<glm::vec3> vecPtsControl) = 0;

	// Evalua los puntos usando el algoritmo
	virtual glm::vec3 eval(float u) const = 0;

	// Permiten definir los limites del algoritmo
	virtual float getLimiteSuperior() const = 0;
	virtual float getLimiteInferior() const = 0;
};

